Mongo
El componente MongoDB funciona como la base de datos documental del sistema ASPA. A diferencia del motor geoespacial, este servicio está orientado a la gestión ágil del estado de la aplicación, el seguimiento asíncrono de los cálculos y la administración de la plataforma.
Funcionalidad
Su propósito principal es actuar como el registro vital y administrativo del sistema:
- Seguimiento de procesos (Jobs): Su mayor fortaleza es la creación y monitorización del ciclo de vida de los jobs. Al ser una base de datos ágil, permite actualizaciones constantes y concurrentes del estado de progreso del job, reportado por el Worker y orquestado por el Back Node.
- Persistencia de configuración: Almacena la información administrativa del ecosistema, como los usuarios con acceso a la plataforma y el catálogo de conjuntos de datos disponibles para operar.
Estructura de datos
El modelo documental permite almacenar la información en estructuras flexibles (tipo JSON), organizadas principalmente en las siguientes colecciones:
- Usuarios: Credenciales, perfiles y permisos de acceso al sistema.
- Datasets: Registro y metadatos de los escenarios de datos disponibles (por ejemplo, matrices de días laborales frente a fines de semana).
- Jobs: Estructura fundamental para cada petición de cálculo, que encapsula:
- FilterPayload: Los parámetros y filtros exactos que el usuario ha solicitado.
- Estado: La fase actual del procesamiento.
- Resultado: La referencia, metadatos o ruta del archivo generado para su descarga o visualización.
Detalles técnicos y arquitectura
- Naturaleza del motor: Base de datos NoSQL orientada a documentos. Su esquema dinámico es ideal para almacenar estructuras variables como el estado de la consulta, el cual cambia a lo largo de la ejecución de la consulta.
- Velocidad de escritura: Su naturaleza documental permite altísimas tasas de escritura y lectura, lo cual es un requisito indispensable para actualizar en tiempo real el estado de los jobs concurrentes sin generar bloqueos en el sistema.